2023Java高频面试题,jvm虚拟机体系结构,收藏必看! |
您所在的位置:网站首页 › java 调用soapclient › 2023Java高频面试题,jvm虚拟机体系结构,收藏必看! |
0
分享至
用微信扫码二维码 分享至好友和朋友圈 1. 前言 最近很多小伙伴在找工作. 在面试中, 面试官经常问到的一个面试题是 : 请说出Jvm虚拟机体系结构? 小伙伴们, 一般会说堆, 栈.....然后面试官问, 那还知道其他的吗, 然后小伙伴们就语塞了....... 面试后来问千锋健哥, 所以健哥在这里为大家来讲讲这个Jvm虚拟机体系结构的问题. 2. 面试题考点 如果面试官是千锋健哥的话, 那么我想考的就是看看候选人是否有对Jvm虚拟机结构有一个宏观的理解. 大家来想想为什么要问这个问题呢, 因为Jvm优化的第一步就是先要理解整个Jvm虚拟机的体系结构和作用, 然后再学习Jvm的垃圾回收机制, Jvm分析的命令等, 最后才可以做Jvm调优或者优化. 下面是健哥整理的关于Jvm虚拟机部分的整体学习思路和大纲: 3. 解题分析 下面千锋健哥来带大家一起分析下这个问题的解题思路, 首先Jvm虚拟机结构一共分为九个部分如下: 接下来健哥再说一说每个部分的作用: 3.1. 类加载器 作用 : 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中. 类加载器将 Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的newInstance()方法就可以创建出该类的一个对象。 3.2. 方法区 作用 : Java方法区和堆一样,方法区是一块所有线程共享的内存区域,他保存系统的类信息。比如类的字段、方法、常量池等。 3.3. Java堆 作用 : 堆内存用于存放由new创建的对象和数组。例如: new String() 创建一个对象, 而这个对象就会放入Java堆中存储 3.4. Java栈 作用 : 线程私有,它的生命周期与线程相同。存储局部变量, 动态链接, 方法出口等信息. 3.5. 直接内存 作用 : 提高一些场景中的性能. 直接内存并不是虚拟机运行时数据区的一部分,也不是Java 虚拟机规范中定义的内存区域。在NIO中增加NIO的性能. 3.6. 本地方法栈 作用 : 用于本地方法调用, JDK源码中好多使用了Native关键字, 也就是调用底层C语言编写的方法. 3.7. 垃圾回收系统 作用: 垃圾回收器也叫做垃圾回收系统, 用于在Jvm运行时, 回收垃圾(不用的对象), 释放被占用的内存. 3.8. PC寄存器 作用 : 每个线程启动的时候,都会创建一个PC寄存器。保存下一条将要执行的指令地址. PC寄存器的内容总是指向下一条将被执行指令的地址,这里的地址可以是一个本地指针,也可以是在方法区中相对应于该方法起始指令的偏移量。 3.9. 执行引擎 作用 : 执行编译后的字节码指令. 4. 总结 经过上面的分析最后千锋健哥来给大家总结下这个问题的完整答案: Jvm虚拟机体系结构一共分为九个部分: 类加载器, 方法区, Java堆, Java栈, 直接内存, 本地方法栈, 垃圾回收器, pc寄存器, 执行引擎. 大家一定要牢记哦, 这可是高频面试题!!! 特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。 Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services. /阅读下一篇/ 返回网易首页 下载网易新闻客户端 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |